
/**
 *
 */
package com.serviceprovider.business.module.admin.transaction.services.dao.interfaces;

//~--- non-JDK imports --------------------------------------------------------

import com.serviceprovider.business.module.admin.transaction.model.NewCsvReplica;
import com.serviceprovider.business.module.admin.transaction.valueobjects.TransactionCSV;
import com.serviceprovider.business.module.admin.transaction.valueobjects.TransactionCSVError;

/**
 * @author mrduongnv@gmail.com
 *
 */
public interface IValidationService {

    /**
     * Check for string.
     *
     * @param transactionCSV
     *            the transaction csv
     * @param csvError
     *            the csv error
     * @param value
     *            the value
     * @param field
     *            the field
     */
    void checkForString(NewCsvReplica transactionCSV, TransactionCSVError csvError, String value, String field);

    /**
     * Check for digit.
     *
     * @param transactionCSV
     *            the transaction csv
     * @param csvError
     *            the csv error
     * @param value
     *            the value
     * @param field
     *            the field
     */
    void checkForDigit(NewCsvReplica transactionCSV, TransactionCSVError csvError, String value, String field);

    /**
     * Check for credit or debit.
     *
     * @param transactionCSV
     *            the transaction csv
     * @param csvError
     *            the csv error
     * @param value
     *            the value
     * @param field
     *            the field
     */
    void checkForCreditOrDebit(NewCsvReplica transactionCSV, TransactionCSVError csvError, String value, String field);

    /**
     * Check identification number.
     *
     * @param transactionCSV
     *            the transaction csv
     * @param csvError
     *            the csv error
     * @param identificationNumber
     *            the identification number
     */
    void checkIdentificationNumber(NewCsvReplica transactionCSV, TransactionCSVError csvError,
                                   String identificationNumber);

    /**
     * Check for valid date.
     *
     * @param transactionCSV
     *            the transaction csv
     * @param csvError
     *            the csv error
     * @param date
     *            the date
     * @param pattern
     *            the pattern
     * @param field
     *            the field
     */
    void checkForValidDate(NewCsvReplica transactionCSV, TransactionCSVError csvError, String date, String pattern,
                           String field);

    /**
     * Check for unique number.
     *
     * @param transactionCSV
     *            the transaction csv
     * @param csvError
     *            the csv error
     * @param value
     *            the value
     * @param field
     *            the field
     */
    void checkForUniqueNumber(NewCsvReplica transactionCSV, TransactionCSVError csvError, String value, String field);

    /**
     * Checks if is duplicated.
     *
     * @param receiverAccount
     *            the receiver account
     * @return true, if is duplicated
     */
    boolean isDuplicated(String receiverAccount);
}



